var listaNicks = new Array();
var listaEmails = new Array();
var nickValido = false;
var emailValido = false;

function nivelSeguridad(){

    var nivel = 0;
    var password = $("#TF_Password").val();
    var largo = password.length;
    var cletras = false;
    var cnumeros = false;
    var cmayusculas = false;

    for(i = 0; i < largo; i++){

        var c = password[i];
        var codigo = c.charCodeAt();
        
        if((codigo > 47) && (codigo < 58)){

            cnumeros = true;

        }

        if((codigo < 48) || (codigo > 57)){

            cletras = true;

        }
        
        if((codigo > 64) && (codigo < 91)){

            cmayusculas = true;

        }
        
    }

    if(largo < 8){

        nivel = 0;

    }

    else if((largo >= 8) && (largo < 10)){

        if((cmayusculas === true) && (cnumeros === true) && (cletras === false)){

            nivel = 2;

        }

        else if((cmayusculas === true) && (cnumeros === false) && (cletras === true)){

            nivel = 2;

        }

        else if((cmayusculas === false) && (cnumeros === false) && (cletras === true)){

            nivel = 1;

        }

        else if((cmayusculas === false) && (cnumeros === true) && (cletras === false)){

            nivel = 1;

        }
        
        else if((cmayusculas === false) && (cnumeros === true) && (cletras === true)){

            nivel = 2;

        }

        else if((cmayusculas === true) && (cnumeros === true) && (cletras === true)){

            nivel = 2;

        }

    }

    else if(largo >= 10){

        if((cmayusculas === true) && (cnumeros === true) && (cletras === false)){

            nivel = 2;

        }

        else if((cmayusculas === true) && (cnumeros === false) && (cletras === true)){

            nivel = 2;

        }

        else if((cmayusculas === false) && (cnumeros === false) && (cletras === true)){

            nivel = 1;

        }

        else if((cmayusculas === false) && (cnumeros === true) && (cletras === false)){

            nivel = 1;

        }

        else if((cmayusculas === true) && (cnumeros === true) && (cletras === true)){

            nivel = 3;

        }

        else if((cmayusculas === false) && (cnumeros === true) && (cletras === true)){

            nivel = 2;

        }

    }

    return nivel;

}

function validarEmail(){
                
    var email = $("#TF_Email").val();

    if(email.length > 5){

        for(i = 0; i < email.length; i++){

            if(email[i] === " "){

                emailValido = false;
                return false;

            }        

        }

        for(i = 0; i < listaEmails.length; i++){

            if(email === listaEmails[i]){

                emailValido = false;
                return false;

            }

        }

        emailValido = true;
        return true;

    }
    
    else{
        
        emailValido = false;
        return false;
        
    }

}

function validarNick(){
                
    var nick = $("#TF_Nick").val();

    if(nick.length > 1){

        for(i = 0; i < nick.length; i++){

            if(nick[i] === " "){

                nickValido = false;
                return false;

            }        

        }

        for(i = 0; i < listaNicks.length; i++){

            if(nick === listaNicks[i]){

                nickValido = false;
                return false;

            }

        }

        nickValido = true;
        return true;
        
    }

    else{
        
        emailValido = false;
        return false;
        
    }

}

function validarPassword(){
    
    var password = $("#TF_Password").val();
    var confirmar = $("#TF_Confirmar").val();
    
    if(password === confirmar){
        
        return true;
        
    }
    
    else{
        
        return false;
        
    }
    
};

function validarForm(){
    
    validarNick();
    validarEmail();
    
    var dia = $("#S_Dia").val();
    var mes = $("#S_Mes").val();
    var year = $("#S_Year").val();

    if((dia !== "DIA") && (mes !== "MES") && (year !== "YEAR")){

        if(nickValido){
           
            if(emailValido){
                
                if(validarPassword()){
                
                    var nick = $("#TF_Nick").val();
                    var email = $("#TF_Email").val();
                    var tipo = $("#S_Tipo").val();
                    var nombre = $("#TF_Nombre").val();
                    var apellido = $("#TF_Apellido").val();
                    
                    if(tipo === "[CLIENTE]"){

                        return confirm("Los siguientes datos seran dados de alta:\n\nNick: " 
                        + nick + "\nEmail: " + email + "\nTipo de Perfil: " + tipo
                        + "\nNombre: " + nombre + "\nApellido: " + apellido + "\nFecha de Nacimiento: " 
                        + dia + "/" + mes + "/" + year
                        + "\n\nDesea continuar?");
                                    
                    }
                    
                    else{
                        
                        var web = $("#TF_Web").val();
                        
                        return confirm("Los siguientes datos seran dados de alta:\n\nNick: " 
                        + nick + "\nEmail: " + email + "\nTipo de Perfil: " + tipo
                        + "\nNombre: " + nombre + "\nApellido: " + apellido + "\nFecha de Nacimiento: " 
                        + dia + "/" + mes + "/" + year + "\nWeb: " + web
                        + "\n\nDesea continuar?");
                        
                    }
                                        
                }
                
                else{
                    
                    alert("ERROR: Las contraseñas no coinciden!");
                    return false;
                    
                }
            
            }
            
            else{
                
                alert("ERROR: el email ya existe en el sistema!");
                return false;
                
            }

        }
        
        else{
                        
            alert("ERROR: el nick ya existe en el sistema!");
            return false;
            
        }

    }

    else{

        alert("ERROR: Debe ingresar la fecha de nacimiento!");
        return false;

    }

};

function cargarWeb(){
    
    var tipo = $("#S_Tipo").val();

    if(tipo === "[CLIENTE]"){

        $("#DIV_Web").css("display", "none");
        document.forms["F_Registrar"]["TF_Web"].disabled = true;

    }

    else{

        $("#DIV_Web").css("display", "block");
        document.forms["F_Registrar"]["TF_Web"].disabled = false;

    }

};

$(document).on("ready", function(){
    
    $("#IMG_Email").css("display", "none");
    $("#IMG_Nick").css("display", "none");
    $("#IMG_Password").css("display", "none");
    
    cargarWeb();
            
    document.forms["F_Registrar"]["TF_Web"].disabled = true;
    
    $("#I_Archivos").on("change", function(evt){
        
        var files = evt.target.files;
        var f = files[0];
        
        if(f.type.match("image.*")){
         
            var reader = new FileReader();

            reader.onload = (function(theFile){

                return function(e) {

                    document.forms["F_Registrar"]["IMG_Imagen"].src = e.target.result;

                };

            })(f);

            reader.readAsDataURL(f);
            
        }

    });
        
    $("#TF_Nick").change(function(){
                    
        if(validarNick()){

            $("#TF_Nick").css("box-shadow", "0px 0px 5px green");
            document.forms["F_Registrar"]["IMG_Nick"].src = "img/tick.png";
            $("#IMG_Nick").css("display", "inline");
            
        }

        else{

            $("#TF_Nick").css("box-shadow", "0px 0px 5px red");
            document.forms["F_Registrar"]["IMG_Nick"].src = "img/error.png";
            $("#IMG_Nick").css("display", "inline");

        }

    });
    
    $("#TF_Email").change(function(){
                    
        if(validarEmail()){

            $("#TF_Email").css("box-shadow", "0px 0px 5px green");
            document.forms["F_Registrar"]["IMG_Email"].src = "img/tick.png";
            $("#IMG_Email").css("display", "inline");
            
        }

        else{

            $("#TF_Email").css("box-shadow", "0px 0px 5px red");
            document.forms["F_Registrar"]["IMG_Email"].src = "img/error.png";
            $("#IMG_Email").css("display", "inline");

        }

    });
    
    $("#TF_Confirmar").keyup(function(){
                    
        if(validarPassword()){

            $("#TF_Confirmar").css("box-shadow", "0px 0px 5px green");
            document.forms["F_Registrar"]["IMG_Password"].src = "img/tick.png";
            $("#IMG_Password").css("display", "inline");
            
        }

        else{

            $("#TF_Confirmar").css("box-shadow", "0px 0px 5px red");
            document.forms["F_Registrar"]["IMG_Password"].src = "img/error.png";
            $("#IMG_Password").css("display", "inline");

        }

    });
    
    $("#TF_Password").keyup(function(){
                    
        var nivel = nivelSeguridad();
        
        if(nivel === 0){
            
            $("#LBL_Nivel").css("box-shadow", "0px 0px 15px #336699");
            $("#LBL_Nivel").css("color", "#336699");
            document.getElementById("LBL_Nivel").innerHTML = "Nulo";
            
        }
        
        else if(nivel === 1){
            
            $("#LBL_Nivel").css("box-shadow", "0px 0px 15px yellow");
            $("#LBL_Nivel").css("color", "yellow");
            document.getElementById("LBL_Nivel").innerHTML = "Bajo";
            
        }
        
        else if(nivel === 2){
            
            $("#LBL_Nivel").css("box-shadow", "0px 0px 15px orange");
            $("#LBL_Nivel").css("color", "orange");
            document.getElementById("LBL_Nivel").innerHTML = "Medio";
            
        }
        
        else if(nivel === 3){
            
            $("#LBL_Nivel").css("box-shadow", "0px 0px 15px green");
            $("#LBL_Nivel").css("color", "green");
            document.getElementById("LBL_Nivel").innerHTML = "Alto";
            
        }
        
        else{
            
            $("#LBL_Nivel").css("box-shadow", "0px 0px 15px red");
            $("#LBL_Nivel").css("color", "red");
            document.getElementById("LBL_Nivel").innerHTML = "Error";
            
        }

    });

});                    
